package Metier;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

import Controle.Controleur;

/**
 * Classe de gestion des styleCSS
 * @author Aubry Thomas
 * @author Bouchet Sylvain
 * @author Fauvel Alexis
 * @author Lessieur Jocelyn
 * @author Mathias Bastien 
 * @author Teuf Antoine
 * @version 1.0
 */
public class StyleCSS{
	
	/**
	 * Constructeur de la classe StyleCSS, genere le CSS d'un projet
	 * @param racine	chemin du fichier de sauvegarde des projets
	 * @param projet	projet dont l'on veut generer le CSS
	 */
	public StyleCSS(String racine, Projet projet){
		Theme theme= projet.getTheme();
		try
		{
			File f=new File(racine + projet.getNom(), "design.css");
			if(f.exists())
				f.delete();	
			f.createNewFile(); // Cette fonction doit être appelée au sein d'un bloc TRY
		}
		catch (IOException ioe)
		{
			System.out.println("Impossible de créer le fichier");
		}
		String nom = racine + projet.getNom()+"/design.css";
		
		try
		{
			FileWriter fw = new FileWriter(nom, true);
			BufferedWriter output = new BufferedWriter(fw);
			
			output.write("\nbody{\n"
					+"\tbackground-color:  rgb("+theme.getFond().getRed()+","+theme.getFond().getGreen()+","+theme.getFond().getBlue()+");\n"
					+"\twidth: 90%;\n"
					+"\tmargin:auto;\n"
					+"\tmargin-top: 50px;\n"
					+"\tmargin-bottom: 50px;\n"
					+"}\n");
			
			output.write("\nh1{\n"
					+"\tcolor: rgb("+theme.getTitrePage().getRed()+","+theme.getTitrePage().getGreen()+","+theme.getTitrePage().getBlue()+");\n"
					+"}\n");
			
			output.write("\nh3{\n"
					+"\tcolor: rgb("+theme.getSousTitre().getRed()+","+theme.getSousTitre().getGreen()+","+theme.getSousTitre().getBlue()+");\n"
					+"\tpadding-left:20px;\n"
					+"}\n");
			
			output.write("\np{\n"
					+"\tcolor: rgb("+theme.getParagraphe().getRed()+","+theme.getParagraphe().getGreen()+","+theme.getParagraphe().getBlue()+");\n"
					+"\tpadding-left:40px;\n"
					+"}\n");
			
			output.write("\nimg{\n"
					+"\tmax-width:90%;\n"
					+"\tdisplay: block;\n"
					+"\tmargin:auto;\n"
					+"\tmargin-bottom:20px;\n"
					+"}\n");
			
			output.write("\n.cadreDroit{\n"
					+"\tfloat:right;\n"
					+"\ttext-align:right;\n"
					+"}\n");
			
			output.write("\nh2{\n"
					+"\tcolor: rgb("+theme.getSousTitre().getRed()+","+theme.getSousTitre().getGreen()+","+theme.getSousTitre().getBlue()+");\n"
					+"}\n");
			
			output.write("\na{\n"
					+"\tcolor: rgb("+theme.getLien().getRed()+","+theme.getLien().getGreen()+","+theme.getLien().getBlue()+");\n"
					+"}\n");
			
			output.write("\nul{\n"
					+"\tcolor: rgb("+theme.getLien().getRed()+","+theme.getLien().getGreen()+","+theme.getLien().getBlue()+");\n"
					+"\tpadding-left:40px;\n"
					+"}\n");
			
			output.write("\n.sommaire{\n"
					+"\tlist-style-type:square;\n"
					+"\tcolor: rgb("+theme.getLien().getRed()+","+theme.getLien().getGreen()+","+theme.getLien().getBlue()+");\n"
					+"\ttext-align:center;\n"
					+"\tfont-size:30px;\n"
					+"\tpadding:0;\n"
					+"}\n");


			
			
			
			output.flush();
			
			output.close();
		}
		catch(IOException ioe){
			System.out.print("Erreur : ");
			ioe.printStackTrace();
		}

	}
}
